Шрифт:
Интервал:
Закладка:
Элементы контекстного меню ContextMenu представлены классом MenuItem и составляют набор ObservableList, заполнить который можно с помощью метода getItems.addAll класса ContextMenu.
С элементами MenuItem мы уже познакомились при обсуждении панели MenuBar.
Контекстное меню прикрепляется к элементу управления методом setContextMenu.
Отдельно отобразить контекстное меню можно методом show, а скрыть его методом hide.
В этом примере мы создаем контекстное меню с элементом Remove и прикрепляем его к дереву.
При нажатии правой кнопкой мышки на дереве появляется контекстное меню.
При активации элемента Remove выделенный узел дерева удаляется.
MenuButton и SplitMenuButton
Компонент MenuButton представляет кнопку, при нажатии на которую появляется меню.
Отличие набора свойств компонента MenuButton от набора свойств компонента Button заключается в наличии свойств popupSide и showing.
Свойство popupSide определяет расположение меню относительно кнопки, а свойство showing принимает значение true при отображении меню.
При создании компонента MenuButton требуется создание меню, являющегося неотъемлемой частью компонента.
При этом меню состоит из набора компонентов, представленных классом MenuItem, пополнять который можно с помощью метода getItems.addAll класса MenuButton.
Экземпляр класса MenuItem можно создать с помощью конструктора, в котором можно указать текст и значок.
С классом MenuItem мы уже познакомились при обсуждении панели MenuBar.
В этом примере мы создаем кнопку с помощью конструктора, в котором можно указать надпись кнопки и значок.
С помощью метода setPopupSide мы определяем, что меню будет располагаться справа.
Далее мы создаем элементы меню MenuItem, к которым присоединяем обработчик выбора, используя метод setOnAction.
И добавляем элементы меню к кнопке методом getItems.addAll.
Компонент SplitMenuButton представляет кнопку, разделенную на две части, одна из которых представляет обычную кнопку, а при нажатии на другую появляется меню.
Компонент SplitMenuButton по своей функциональности аналогичен компоненту MenuButton, так как класс SplitMenuButton является расширением класса MenuButton.
Отличие состоит в том, что компонент SplitMenuButton состоит из двух частей, одна из которых может работать как обычная кнопка, и для которой можно определить отдельный обработчик событий onAction, а другая часть выполняет основную функцию компонента MenuButton, т.е. открывает контекстное меню.
Меню компонента SplitMenuButton состоит из набора компонентов, представленных классом MenuItem, пополнять который можно с помощью метода getItems.addAll класса MenuButton.
В этом примере мы создаем кнопку с помощью конструктора, в котором, в отличие от кнопки MenuButton нельзя указать надпись кнопки и значок.
Для этого нужно использовать отдельные методы setText и setGraphic.
С помощью метода setPopupSide мы определяем, что меню будет располагаться снизу кнопки.
К кнопке мы присоединяем обработчик нажатия с помощью метода setOnAction.
Далее мы создаем элементы меню MenuItem, к которым присоединяем обработчик выбора, используя метод setOnAction.
И добавляем элементы меню к кнопке методом getItems.addAll.
ColorPicker
Элемент управления цветом ColorPicker позволяет пользователям выбрать определенный цвет из имеющегося диапазона или установить дополнительный цвет.
Компонент ColorPicker состоит из компонента выбора цвета, компонента цветовой палитры и настраиваемого диалогового окна цветов.
Компонент выбора цвета представляет собой поле со списком цветов для выбора цвета.
Реализация этого компонента позволяет три вида компонента выбора цвета: кнопка, разделенная кнопка с меню и поле со списком по умолчанию.
Чтобы изменить поле со списком на кнопку или разделенную кнопку, нужно применить соответствующий CSS класс с помощью метода getStyleClass.add.
Компонент цветовая палитра содержит предопределенный набор цветов и ссылку «Пользовательский цвет», которая открывает диалоговое окно «Пользовательский цвет».
Если пользовательский цвет уже определен, этот цвет отображается в области «Пользовательский цвет» в цветовой палитре.
Цветовая палитра поддерживает навигацию с помощью клавиш «Вверх», «Вниз», «Влево» и «Вправо».
Набор пользовательских цветов не перезагружается, когда приложение запускается снова, если этот набор явно не сохраняется в приложении.
Диалоговое окно «Пользовательский цвет» – это модальное окно, которое можно открыть, щелкнув ссылку в цветовой палитре.
Когда открывается окно «Пользовательский цвет», оно отображает значение цвета, который в настоящее время отображается в поле со списком.
Пользователь может определить новый цвет, перемещая курсор мыши по области цвета или по вертикальной цветной панели.
Другой способ определить новый цвет – установить значения яркости HSB или RGB, или явно ввести значение цвета в соответствующем поле.
Пользователь также может установить прозрачность пользовательского цвета.
Когда новый цвет выбран, пользователь может нажать «Использовать», чтобы применить его, или «Сохранить», чтобы сохранить цвет.
В этом примере мы создаем компонент ColorPicker с помощью конструктора, в которм сразу можно указать выбранный цвет.
С помощью метода setOnAction мы присоединяем к ColorPicker обработчик выбора цвета, в котором получаем выбранный пользователем цвет и используем его.
DatePicker
Компонент DatePicker – это элемент управления, который позволяет выбирать день из календаря.
Этот компонент используется в приложениях, которые требуют, чтобы пользователи вводили дату.
Компонент DatePicker состоит из поля даты и списка выбора даты.
Программный интерфейс Date-Time, введенный в JDK 8, позволяет выполнять различные операции с датой и временем, включая настройку календарного и местного времени для разных часовых поясов.
Основным пакетом программного интерфейса Date-Time является пакет java. time.
Чтобы улучшить пользовательский интерфейс JavaFX с возможностями API Date-Time, в JavaFX SDK был введен элемент управления DatePicker, который состоит из редактируемого поля даты и календаря выбора даты.
В исходном состоянии поле даты пустое.
Можно указать начальное значение даты, с помощью метода setValue компонента, или указав дату в конструкторе.
API DatePicker предоставляет несколько свойств и методов для изменения внешнего вида, и поведения компонента по умолчанию.
В частности, вы можете отображать номера недель, настраивать форматы дат, а также определять ячейки даты.
Вы можете включить или отключить отображение номеров недели в календаре с помощью метода setShowWeekNumbers класса DatePicker.
По умолчанию даты в поле даты отображаются в формате мм / дд / гггг.
Обычно вам не нужно изменять этот формат по умолчанию.
Тем не менее, метод setConverter класса DatePicker позволяет вам установить альтернативный формат даты, когда это необходимо.
Метод setPromptText позволяет установить подсказку в поле даты.
Вы также можете изменить внешний вид по умолчанию и установить поведение для любой ячейки или нескольких ячеек календаря с помощью метода setDayCellFactory.
С помощью метода setOnAction мы присоединяем к DatePicker обработчик выбора даты, в котором получаем выбранную пользователем дату и используем ее.
Окно FileChooser и DirectoryChooser
Компонент FileChooser обеспечивает для пользователя навигацию по файловой системе.
С помощью FileChooser можно открыть один или несколько файлов, и сохранить содержимое приложения в файл.
В отличие от других компонентов пользовательского интерфейса, класс FileChooser не относится к пакету scene.controls.
Класс FileChooser находится в пакете javafx.stage вместе с другими корневыми компонентами, такими как Stage, Window и Popup.
Класс FileChooser представляет окно выбора файлов локальной файловой системы и имеет свойства initialDirectory и title.
С помощью
- C# для профессионалов. Том II - Симон Робинсон - Программирование
- Как спроектировать современный сайт - Чои Вин - Программирование
- Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT. Часть 2 - Александр Фролов - Программирование
- Программирование на Java - Н.А. Вязовик - Программирование
- ИНФОРМАЦИОННАЯ ТЕХНОЛОГИЯ. РУКОВОДСТВО ПО УПРАВЛЕНИЮ ДОКУМЕНТИРОВАНИЕМ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ - ГОССТАНДАРТ РОССИИ - Программирование
- Каждому проекту своя методология - Алистэр Коуберн - Программирование
- Сделай видеоигру один и не свихнись - Слава Грис - Программирование / Руководства
- Как почистить сканы книг и сделать книгу - IvanStorogev? KpNemo - Программирование